package com.ts.api.module.api.service;

import com.ts.api.exp.RollBackException;
import com.ts.api.module.api.entity.bo.H5CallbackExistBO;
import com.ts.api.module.api.entity.bo.H5CallbackOrgInfoBO;
import com.ts.api.module.api.entity.po.ApiKeyPO;
import com.ts.api.module.product.entity.po.ProductApplyFlowPO;

/**
 *  API-H5回调业务层
 *  @author Pan
 */
public interface ApiH5CallBackService {

    /**
     * 获取用户及机构信息
     *
     * @param   apiCallbackExistOrgBO
     * @return  ApiCallbackOrgInfoBO
     */
    H5CallbackOrgInfoBO getOrgInfo(H5CallbackExistBO apiCallbackExistOrgBO);

    /**
     *  上游拉取进件-用户授权同意
     *
     *  @param apiKeyPO               客户端实体
     *  @param productApplyFlowPO     流程实体
     */
    void pullApply(ApiKeyPO apiKeyPO, ProductApplyFlowPO productApplyFlowPO) throws RollBackException;

    /**
     *  上游撞库->进件-用户授权同意
     *
     *  @param apiKeyPO               客户端实体
     *  @param productApplyFlowPO     流程实体
     */
    void apply(ApiKeyPO apiKeyPO, ProductApplyFlowPO productApplyFlowPO);
}
